from .core import (NODE_CLASS_MAPPINGS as CORE_NODE_CLASS_MAPPINGS,
                   NODE_DISPLAY_NAME_MAPPINGS as CORE_NODE_DISPLAY_NAME_MAPPINGS)
from .high_level import (NODE_CLASS_MAPPINGS as HIGH_LEVEL_NODE_CLASS_MAPPINGS,
                        NODE_DISPLAY_NAME_MAPPINGS as HIGH_LEVEL_NODE_DISPLAY_NAME_MAPPINGS)
from .side_effects import (NODE_CLASS_MAPPINGS as SIDE_EFFECTS_NODE_CLASS_MAPPINGS,
                           NODE_DISPLAY_NAME_MAPPINGS as SIDE_EFFECTS_NODE_DISPLAY_NAME_MAPPINGS)

NODE_CLASS_MAPPINGS = {
    **CORE_NODE_CLASS_MAPPINGS,
    **HIGH_LEVEL_NODE_CLASS_MAPPINGS,
    **SIDE_EFFECTS_NODE_CLASS_MAPPINGS,
}

NODE_DISPLAY_NAME_MAPPINGS = {
    **CORE_NODE_DISPLAY_NAME_MAPPINGS,
    **HIGH_LEVEL_NODE_DISPLAY_NAME_MAPPINGS,
    **SIDE_EFFECTS_NODE_DISPLAY_NAME_MAPPINGS,
}

PREFIX = "duanyll::"
NODE_CLASS_MAPPINGS = {
    (k if k.startswith("__") else PREFIX + k): v
    for k, v in NODE_CLASS_MAPPINGS.items()
}
NODE_DISPLAY_NAME_MAPPINGS = {
    (k if k.startswith("__") else PREFIX + k): v
    for k, v in NODE_DISPLAY_NAME_MAPPINGS.items()
}